#ifndef OA_INPUT_INPUT_H
#define OA_INPUT_INPUT_H

#include <libs.h>
#include "core/system.h"
#include "core/taskmanager.h"
#include "video/video.h"

#include "input/keyboard.h"
#include "input/mouse.h"

namespace input {
	class Input: 
		public core::System 
	{
	public:
		Input();
		virtual ~Input();

		virtual bool init();
		virtual void run();
		virtual void shutdown();

		void handle(const video::WindowCreated&);

		const boost::shared_ptr<Keyboard>& getKeyboard();
		const boost::shared_ptr<Mouse>& getMouse();

	protected:
		boost::shared_ptr<Keyboard> mKeyboard;
		boost::shared_ptr<Mouse> mMouse;
	};
}

#endif
